/**
 *Copyright (c) 2024 watereyes
 * safetymanagement is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan
 * PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *          http://license.coscl.org.cn/MulanPubL-2.0
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package com.koron.emergency.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.koron.common.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

@ApiModel(value = "应急预案", description = "应急预案实体类")
public class ContingencyPlan extends BaseEntity {
    @ApiModelProperty(name = "corpCode", value = "水司code")
    private String corpCode;

    @ApiModelProperty(name = "corpName", value = "水司名称")
    private String corpName;

    @ApiModelProperty(name = "contingencyPlanName", value = "预案名称")
    private String contingencyPlanName;

    @ApiModelProperty(name = "version", value = "版本号")
    private String version;

    @ApiModelProperty(name = "contingencyPlanCode", value = "应急预案编号")
    private String contingencyPlanCode;

    @ApiModelProperty(name = "contingencyPlanType", value = "预案类型")
    private String contingencyPlanType;

    @ApiModelProperty(name = "contingencyPlanTypeName", value = "预案类型名称")
    private String contingencyPlanTypeName;

    @ApiModelProperty(value = "状态(0.审核完成，1.新增审核中,2.草稿，3修改审核中，4删除审批中，5.已废弃)", name = "state")
    private Integer state;

    @ApiModelProperty(name = "subordinateCompanyCode", value = "所属单位Code")
    private String subordinateCompanyCode;

    @ApiModelProperty(name = "subordinateCompanyName", value = "所属单位名称")
    private String subordinateCompanyName;

    @ApiModelProperty(name = "publicationDate", value = "发布日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date publicationDate;
    private String publicationDateStr;

    @ApiModelProperty(name = "executionDate", value = "实施日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date executionDate;
    private String executionDateStr;

    @ApiModelProperty(name = "filingDate", value = "备案时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date filingDate;
    private String filingDateStr;

    @ApiModelProperty(name = "applicableProvisions", value = "适用条款")
    private String applicableProvisions;

    @ApiModelProperty(name = "sortOrdinal", value = "排序序号，1-100，默认100")
    private Integer sortOrdinal;

    @ApiModelProperty(name = "remarks", value = "备注")
    private String remarks;

    @ApiModelProperty(name = "attachment", value = "附件地址")
    private String attachment;

    @ApiModelProperty(name = "previewAttachment", value = "附件地址")
    private String previewAttachment;

    /**
     * 响应等级集合
     */
    private List<ResponseLevel> responseLevelList;

    public List<ResponseLevel> getResponseLevelList() {
        return responseLevelList;
    }

    public void setResponseLevelList(List<ResponseLevel> responseLevelList) {
        this.responseLevelList = responseLevelList;
    }

    public String getCorpCode() {
        return corpCode;
    }

    public void setCorpCode(String corpCode) {
        this.corpCode = corpCode;
    }

    public String getCorpName() {
        return corpName;
    }

    public void setCorpName(String corpName) {
        this.corpName = corpName;
    }

    public String getContingencyPlanName() {
        return contingencyPlanName;
    }

    public void setContingencyPlanName(String contingencyPlanName) {
        this.contingencyPlanName = contingencyPlanName;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getContingencyPlanCode() {
        return contingencyPlanCode;
    }

    public void setContingencyPlanCode(String contingencyPlanCode) {
        this.contingencyPlanCode = contingencyPlanCode;
    }

    public String getContingencyPlanType() {
        return contingencyPlanType;
    }

    public void setContingencyPlanType(String contingencyPlanType) {
        this.contingencyPlanType = contingencyPlanType;
    }

    public String getContingencyPlanTypeName() {
        return contingencyPlanTypeName;
    }

    public void setContingencyPlanTypeName(String contingencyPlanTypeName) {
        this.contingencyPlanTypeName = contingencyPlanTypeName;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getSubordinateCompanyCode() {
        return subordinateCompanyCode;
    }

    public void setSubordinateCompanyCode(String subordinateCompanyCode) {
        this.subordinateCompanyCode = subordinateCompanyCode;
    }

    public String getSubordinateCompanyName() {
        return subordinateCompanyName;
    }

    public void setSubordinateCompanyName(String subordinateCompanyName) {
        this.subordinateCompanyName = subordinateCompanyName;
    }

    public Date getPublicationDate() {
        return publicationDate;
    }

    public void setPublicationDate(Date publicationDate) {
        this.publicationDate = publicationDate;
    }

    public Date getExecutionDate() {
        return executionDate;
    }

    public void setExecutionDate(Date executionDate) {
        this.executionDate = executionDate;
    }

    public Date getFilingDate() {
        return filingDate;
    }

    public void setFilingDate(Date filingDate) {
        this.filingDate = filingDate;
    }

    public String getApplicableProvisions() {
        return applicableProvisions;
    }

    public void setApplicableProvisions(String applicableProvisions) {
        this.applicableProvisions = applicableProvisions;
    }

    public Integer getSortOrdinal() {
        return sortOrdinal;
    }

    public void setSortOrdinal(Integer sortOrdinal) {
        this.sortOrdinal = sortOrdinal;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getAttachment() {
        return attachment;
    }

    public void setAttachment(String attachment) {
        this.attachment = attachment;
    }

    public String getPreviewAttachment() {
        return previewAttachment;
    }

    public void setPreviewAttachment(String previewAttachment) {
        this.previewAttachment = previewAttachment;
    }

    public String getPublicationDateStr() {
        return publicationDateStr;
    }

    public void setPublicationDateStr(String publicationDateStr) {
        this.publicationDateStr = publicationDateStr;
    }

    public String getExecutionDateStr() {
        return executionDateStr;
    }

    public void setExecutionDateStr(String executionDateStr) {
        this.executionDateStr = executionDateStr;
    }

    public String getFilingDateStr() {
        return filingDateStr;
    }

    public void setFilingDateStr(String filingDateStr) {
        this.filingDateStr = filingDateStr;
    }

    @Override
    public String toString() {
        return "ContingencyPlan{" +
                "corpCode='" + corpCode + '\'' +
                ", corpName='" + corpName + '\'' +
                ", contingencyPlanName='" + contingencyPlanName + '\'' +
                ", version='" + version + '\'' +
                ", contingencyPlanCode='" + contingencyPlanCode + '\'' +
                ", contingencyPlanType='" + contingencyPlanType + '\'' +
                ", contingencyPlanTypeName='" + contingencyPlanTypeName + '\'' +
                ", state=" + state +
                ", subordinateCompanyCode='" + subordinateCompanyCode + '\'' +
                ", subordinateCompanyName='" + subordinateCompanyName + '\'' +
                ", publicationDate=" + publicationDate +
                ", executionDate=" + executionDate +
                ", filingDate=" + filingDate +
                ", applicableProvisions='" + applicableProvisions + '\'' +
                ", sortOrdinal=" + sortOrdinal +
                ", remarks='" + remarks + '\'' +
                ", attachment='" + attachment + '\'' +
                ", previewAttachment='" + previewAttachment + '\'' +
                ", responseLevelList=" + responseLevelList +
                '}';
    }
}
